package com.xhermit.learn.footprint.base.domain;

import java.io.Serializable;
import java.util.UUID;

import org.apache.commons.lang3.StringUtils;

/**
 * Entity 基类
 * 
 * @author lh
 * @version 3.0
 * @date 2016年5月9日
 */
public abstract class BaseEntity<T> implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * 主键:UUID
	 */
	protected String uuid;

	/**
	 * 关键字
	 */
	protected String keywords;

	/**************************** 导出相关属性 ****************************/
	/**
	 * 导出标题
	 */
	protected String exportTitle;
	/**
	 * 导出列显示
	 */
	protected String[] hearders;
	/**
	 * 导出列属性
	 */
	protected String[] fields;

	/**
	 * 空构造函数
	 */
	public BaseEntity() {
		super();
	}

	/**
	 * 构造函数
	 * 
	 * @param uuid
	 */
	public BaseEntity(final String uuid) {
		super();
		this.uuid = uuid;
	}

	/**
	 * 获得uuid
	 * 
	 * @return
	 */
	public String getUuid() {
		return uuid;
	}

	/**
	 * 设置uuid
	 * 
	 * @param uuid
	 */
	public void setUuid(final String uuid) {
		this.uuid = uuid;
	}

	/**
	 * 保存数据库前预更新
	 */
	public void preUpdate() {
	}

	/**
	 * 获得关键字
	 * 
	 * @return
	 */
	public String getKeywords() {
		return keywords;
	}

	/**
	 * 设置关键字
	 * 
	 * @param keywords
	 */
	public void setKeywords(final String keywords) {
		this.keywords = keywords;
	}
	/**
	 * 保存数据库前预处理
	 */
	public void preInsert(){
		this.uuid =StringUtils.isBlank(this.uuid)? UUID.randomUUID().toString().replaceAll("-", ""):this.uuid;
	}
	
	/**
	 * excel导出标题
	 * 
	 * @return
	 */
	public String getExportTitle() {
		return exportTitle;
	}

	/**
	 * 设置excel导出标题
	 */
	public void setExportTitle(final String exportTitle) {
		this.exportTitle = exportTitle;
	}

	/**
	 * 获得"导出列显示"
	 * 
	 * @return
	 */
	public String[] getHearders() {
		return hearders;
	}
 

}
